package zw_1_100.zw_11_盛最多水的容器;


class Solution {

    public static void main(String[] args) {
        int[] h = {1, 8, 6, 2, 5, 4, 8, 3, 7};
        int maxArea = maxArea(h);
        System.out.println(maxArea);
    }

    /**
     * 双指针法
     * 时间复杂度 O(N)​ ： 双指针遍历一次底边宽度 N​​ 。
     * 空间复杂度 O(1)​ ： 变量 i , j , res 使用常数额外空间。
     *
     * @param height
     * @return
     */
    public static int maxArea(int[] height) {
        int i = 0, j = height.length - 1, res = 0;
        while (i < j) {
            if (height[i] < height[j]) {
                res = Math.max(res, (j - i) * height[i]);
                i++;
            } else {
                res = Math.max(res, (j - i) * height[j]);
                j--;
            }
        }
        return res;
    }
}
